小编典典

仅在指定字符的第一个实例上拆分字符串

all

在我的代码中,我根据_并抓取数组中的第二项来拆分字符串。

var element = $(this).attr('class');
var field = element.split('_')[1];

接受good_luck并提供给我luck。效果很好!

但是,现在我有一个看起来像good_luck_buddy. 如何让我的 javascript 忽略第二个_并给我luck_buddy

var field = element.split(new char [] {'_'}, 2);在 ac# stackoverflow
答案中找到了这个,但它不起作用。我在 jsFiddle 上试过了…


阅读 158

收藏
2022-03-28

共1个答案

小编典典

使用捕获括号

'good_luck_buddy'.split(/_(.*)/s)
['good', 'luck_buddy', ''] // ignore the third element

它们被定义为

如果separator包含捕获括号,则在数组中返回匹配的结果。

因此,在这种情况下,我们希望在_.*(即,分割分隔符是一个以 开头的子字符串_)进行拆分, 但还要
让结果包含我们的分隔符的某些部分(即,之后的 所有内容_)。

在这个例子中,我们的分隔符(匹配_(.*))是_luck_buddy,捕获的组(在分隔符内)是lucky_buddy。如果没有捕获括号,luck_buddy(matching
.*) 将不会包含在结果数组中,因为简单的情况split是分隔符不包含在结果中。

我们也使用s正则表达式标志.匹配换行符
( \n) 字符,否则它只会拆分到第一个换行符。

2022-03-28